From: Florian Müllner Date: Sun, 9 Jul 2023 23:20:53 +0000 (+0200) Subject: extensionUtils: Slightly optimize current extension lookup X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~337^2~1^2~130 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3451c5a182c8395d2a252973335119e5182bbb9d;p=gnome-shell.git extensionUtils: Slightly optimize current extension lookup When looking for a directory name that matches the extension UUID, we can just as well use GLib's dirname()/basename() functions instead of wrapping the path in a GFile. We also know that the original path corresponds to a regular file and not a directory, so rearrange the loop to avoid a lookup that is guaranteed to fail. Part-of: --- diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js index c60c4520c..f04d2a06b 100644 --- a/js/misc/extensionUtils.js +++ b/js/misc/extensionUtils.js @@ -98,17 +98,18 @@ function getCurrentExtension() { // // We don't have to care about the exact composition, all we need // is a string that can be traversed as path and contains the UUID - const path = extensionLine.slice(extensionLine.indexOf(basePath)); - let file = Gio.File.new_for_path(path); + let path = extensionLine.slice(extensionLine.indexOf(basePath)); // Walk up the directory tree, looking for an extension with // the same UUID as a directory name. - while (file != null) { - let extension = extensionManager.lookup(file.get_basename()); + do { + path = GLib.path_get_dirname(path); + + const dirName = GLib.path_get_basename(path); + const extension = extensionManager.lookup(dirName); if (extension !== undefined) return extension; - file = file.get_parent(); - } + } while (path !== '/'); return null; }